package pe.com.bn.sach.dao.impl;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import com.ibatis.sqlmap.client.SqlMapClient;

import pe.com.bn.sach.cliente.form.ClienteForm;
import pe.com.bn.sach.dao.BducDAO;
import pe.com.bn.sach.dao.datacom.Bnchf01BasicosCltes;

import pe.com.bn.sach.expediente.form.CuentaForm;
import java.sql.Connection;


import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;


public class BducImpl implements BducDAO{
	protected final Log logger = LogFactory.getLog(getClass());
	
	protected SqlMapClient sqlMapbuc = null;
	
	public void setSqlMapbuc(SqlMapClient sqlMapbuc) {
	this.sqlMapbuc = sqlMapbuc;
	} 
	
	
	public int getCodigoBeducCount(ClienteForm clienteForm,Connection cnx) throws Exception{   
		
		
		Bnchf01BasicosCltes bnchf01BasicosCltes = new Bnchf01BasicosCltes(cnx);
	 int id = 0;
        	
        	   id = bnchf01BasicosCltes.getCodigoBeducCount(clienteForm);
        return id;
      
    }
	
	
	
	public String getCodigoBeduc(ClienteForm clienteForm,Connection cnx) throws Exception{ 
		
		
		String id = "";
		Bnchf01BasicosCltes bnchf01BasicosCltes = new Bnchf01BasicosCltes(cnx);
        	 try {
        	 	id = bnchf01BasicosCltes.getCodigoBeduc(clienteForm);
            if(id==null)
            	id = "";
             return  id; 
        } catch (Exception e) {
            e.printStackTrace();
        }
        return id;
    }
	
	
	public int testbd(Connection cnx) throws Exception{
		
		Bnchf01BasicosCltes bnchf01BasicosCltes = new Bnchf01BasicosCltes(cnx);
	     
	      return 	bnchf01BasicosCltes.testbd();
	    	 
	}
	
	
	public String getCodigoBeducxnroCuenta(ClienteForm clienteForm,Connection cnx) throws Exception{   
		
		
		Bnchf01BasicosCltes bnchf01BasicosCltes = new Bnchf01BasicosCltes(cnx);
		String id = "";
        id = bnchf01BasicosCltes.getCodigoBeducxnroCuenta(clienteForm);
		return id;
    }
	
	public String getMultired(ClienteForm clienteForm,Connection cnx) throws Exception{   
		
		Bnchf01BasicosCltes bnchf01BasicosCltes = new Bnchf01BasicosCltes(cnx);
		int id = 0;
		//("no tiene =0");
		//("si tiene =1");
		SimpleDateFormat sdf= new SimpleDateFormat("yyyyMM");
		java.util.Date fechaactual = new java.util.Date();
		String fecha = sdf.format(fechaactual);
		List l = 	bnchf01BasicosCltes.tarjetaMultired(clienteForm);
             try{
             for(int i=0;i<l.size();i++)
             {
             	clienteForm = (ClienteForm)l.get(i);             	
             	if(Integer.parseInt(clienteForm.getFvencmto().substring(0,4)) > Integer.parseInt(fecha.substring(0,4)) )
             	{
             		id++;
             	}
             	if(Integer.parseInt(clienteForm.getFvencmto().substring(0,4)) == Integer.parseInt(fecha.substring(0,4)) )
             	{
             		if(Integer.parseInt(clienteForm.getFvencmto().substring(4,6)) > Integer.parseInt(fecha.substring(4,6)) )
             		{
             			id++;
             		}
             	}
             }
             }catch(Exception e){e.printStackTrace();}
             return  id+""; 
      
    }
	
	public ClienteForm getCliente(ClienteForm clienteForm,Connection cnx)throws Exception{

		clienteForm.setTxtCodigoBduci(Integer.parseInt(clienteForm.getTxtCodigoBduc()));
		Bnchf01BasicosCltes bnchf01BasicosCltes = new Bnchf01BasicosCltes(cnx);
		clienteForm = bnchf01BasicosCltes.PersonaBduc(clienteForm);
		return clienteForm;
    }
	
	public ClienteForm getCentroTrabaj(ClienteForm clienteForm,Connection cnx)throws Exception{
		Bnchf01BasicosCltes bnchf01BasicosCltes = new Bnchf01BasicosCltes(cnx);
		clienteForm = bnchf01BasicosCltes.centrotrabajoBduc(clienteForm);
		return clienteForm;
    }

	public List buscaCuentaxDni(CuentaForm cuentaForm,Connection cnx)throws Exception{
		List lista =new ArrayList(); 
		 
		List ar=new ArrayList(); 
		ClienteForm clienteForm = new ClienteForm();
		clienteForm.setTxtNroDocumento("0000"+cuentaForm.getTxtNroDocumento());
		clienteForm.setSelNroDocumento(cuentaForm.getSelNroDocumento());
		Bnchf01BasicosCltes bnchf01BasicosCltes = new Bnchf01BasicosCltes(cnx);
		//String id = (String)sqlMapbuc.queryForObject("sqlBduc.codigobduc",clienteForm);
		String id =bnchf01BasicosCltes.getCodigoBeduc(clienteForm);
			
		if(id!=null)if(id.trim().length()!=0)
		{
			cuentaForm.setCinterno(new Double(id));
			lista = bnchf01BasicosCltes.buscaCuenta(cuentaForm);
				String temp=""; 
				for (int i = 0; i < lista.size(); i++) {			
					cuentaForm=new CuentaForm();
					cuentaForm=(CuentaForm)lista.get(i);
					temp=cuentaForm.getItem();			
					cuentaForm.setNrocuenta(temp.substring(7,18));
					if(!cuentaForm.getTxtEntidadInter().equals("0604"))
					ar.add(cuentaForm);
				}			
			
			String str="";
			String str1="";
		}		
			return ar;
	
		//return lista;
    } 
	
	public List buscaCuenta(CuentaForm cuentaForm,Connection cnx)throws Exception{
		 
		Bnchf01BasicosCltes bnchf01BasicosCltes = new Bnchf01BasicosCltes(cnx);
		return bnchf01BasicosCltes.buscaCuenta(cuentaForm);
		
	 } 
	
	
	public List listaCuentasCliente(CuentaForm cuentaForm,Connection cnx)throws Exception{

		//return sqlMapbuc.queryForList("sqlBduc.listaCuentasCliente",cuentaForm);
		//listaCuentasCliente
		Bnchf01BasicosCltes bnchf01BasicosCltes = new Bnchf01BasicosCltes(cnx);
		return bnchf01BasicosCltes.listaCuentasCliente(cuentaForm); 
	}

	public List listaCuentaCentroDTrabajo(CuentaForm cuentaForm,Connection cnx)throws Exception{

		return sqlMapbuc.queryForList("sqlBduc.ListaCuentaCentroDTrabajo",cuentaForm);
	}
	
	public List ListaCuentaCentroDTrabajoall(Connection cnx)throws Exception{

		Bnchf01BasicosCltes bnchf01BasicosCltes = new Bnchf01BasicosCltes(cnx);
		return bnchf01BasicosCltes.ListaCuentaCentroDTrabajoall();
	}
	
	public CuentaForm EncontrarCuentaCentroDTrabajo(CuentaForm cuentaForm,Connection cnx)throws Exception{
		
		
		try {
			Bnchf01BasicosCltes bnchf=new Bnchf01BasicosCltes(cnx);
			return  (CuentaForm)bnchf.EncontrarCuentaCentroDTrabajo(cuentaForm).get(0);
		} catch (Exception e) {
			
			logger.error(e);
			// TODO: handle exception
			return null;
		}
			
	}
	

	
}
